from django.shortcuts import redirect
from django.contrib import admin
from .models import SystemSetting

@admin.register(SystemSetting)
class YourModelAdmin(admin.ModelAdmin):
    # 可选：如果需要隐藏列表页的显示配置，可清空list_display等
    list_display = []  # 隐藏列表头
    list_per_page = 1  # 强制每页只显示1条（如果有多条记录）

    class Media:
        # 路径需根据你的 static 目录结构调整
        css = {
            'all': ('css/custom_list.css',)  # 假设 static/css/custom_list.css 存在
        }



    def changelist_view(self, request, extra_context=None):
        """重写列表页视图，直接跳转详情页"""
        # 获取所有记录
        queryset = self.get_queryset(request)
        count = queryset.count()

        if count == 1:
            # 只有一条记录时，直接跳转到该记录的详情页
            obj = queryset.first()
            return redirect('admin:{}_{}_change'.format(
                self.model._meta.app_label,
                self.model._meta.model_name
            ), object_id=obj.pk)
        elif count > 1:
            # 多条记录时，可选择跳转到第一条或保留列表页
            # 这里示例跳转到第一条
            obj = queryset.first()
            return redirect('admin:{}_{}_change'.format(
                self.model._meta.app_label,
                self.model._meta.model_name
            ), object_id=obj.pk)
        else:
            # 无记录时，跳转到添加页（可选）
            return redirect('admin:{}_{}_add'.format(
                self.model._meta.app_label,
                self.model._meta.model_name
            ))